内网穿透、反向代理(ngrok服务器搭建) | 您所在的位置:网站首页 › 反向代理 内网穿透怎么设置 › 内网穿透、反向代理(ngrok服务器搭建) |
内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1指向的Web站点。 一、ngrok ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析与响应。 开源免费 官网:https://ngrok.com/ 源码:https://github.com/inconshreveable/ngrok ngrok1.x开源,ngrok2.x不开源 ngrok使用go语言开发,源代码分为客户端与服务器端。 国内免费服务器:http://ngrok.ciqiuwl.cn/ 下面以上面的免费服务器为示例完成内网穿透 现在假定我的本地已成功部署了一个网站,访问地址为127.0.0.1,想内网穿透后被公网上的用户访问,一般步骤如下: 步骤1、下载windows版本的客户端,解压。一般在为你提供代理服务器的网站上找你要下载的客户端: 步骤2、在命令(cmd)行下进入到ngrok客户端目录下 步骤3、执行 ngrok -config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀),建议批处理 如果连接成功,会提示如下信息: 这一步如果你认为太麻烦,可以直接运行目录下的start.bat批处理文件就不用进DOS环境了。运行start.bat直接跳过2,3步 步骤4、如果开启成功 你就可以使用 xxx.ngrok.xiaomiqiu.cn 来访问你本机的 127.0.0.1:80 的服务了,当然你必须确定的是你本机的Web是可以正常访问的。 注意: 如果你自己有顶级域名,想通过自己的域名来访问本机的项目,那么先将自己的顶级域名解析到120.25.161.137(域名需要已备案哦,80端口必须备案),然后执行 ngrok -config=ngrok.cfg -hostname xxx.xxx.xxx 80 //(xxx.xxx.xxx是你自定义的顶级域名) 二、ubuntu下生成ngrok服务器与客户端应用程序 使用Putty远程登陆到服务器,如下所示: 成功执行后如下所示: 执行结果如下: 生成后的结果如下: 证书如下: 由于go语言的特性,在编译时直接生成机器码,所以在运行过程中并不需要go的环境(非托管应用)。在ngrok目录下,运行一下命令分别生成对应的客户端与服务端。 #win服务端 GOOS=windows GOARCH=386 make release-server #win客户端 GOOS=windows GOARCH=386 make release-client #linux服务端 GOOS=linux GOARCH=386 make release-server #linux客户端 GOOS=linux GOARCH=386 make release-client生成完成后,在工作目录的bin文件夹下,产生对应的文件。以编译windows平台为例,会产生“ngrok.exe”与“ngrokd.exe”这两个文件,前者客户端,后者需要运行在公网服务器上。 因为项目中引用了一些外部资源,生成会耗费一些时间,对网络也有一定的要求,太慢会中短,命令执行下如: 生成结果: 这里我还生成了两个运行在windows服务器与客户端的应用: ngrok 是客户端,ngrokd 是服务端。 7、启动ngrok服务端切换到ngrokd 服务端程序所在的目录并执行如下命令: ./ngrokd -domain xxxx.cnxxx.cn代表你的域名 执行效果如下: 拷贝生成的ngrok.exe到本地计算机,并新建配置文件ngrok.cfg,内容为: server_addr: "xxxx.cn:4443" trust_host_root_certs: falsexxx.cn代表你的域名 再新建文件start.bat批处理文件,内容为: ngrok.exe -subdomain hello -config=ngrok.cfg 8080 hello为子域名前缀,访问时格式为hello.xxx.cn8080为本地tomcat服务器使用的端口号。 双击start.bat启动效果如下所示: |
CopyRight 2018-2019 实验室设备网 版权所有 |